package com.apps.java.javanote02;

public class _18冒泡排序_Arrays {
    /**
     * 冒泡排序
     * 		排序：将一组数据按照固定的规则进行排序
     * 		冒泡排序：一种排序的方式，对要进行排序的数据中相邻的数据进行两两比较，将较大的数据放在后面，
     * 				依次对所有的数据进行操作，直至所有数据按照要求完成排序。
     *
     * 		1.如果有n个数据进行排序，总共需要比较n-1次。
     * 		2.每一次比较完毕，下一次的比较就会少一个数据参与。
     *
     */

    public static void main(String[] args) {
        //定义一个数组，初始化一组值
        int[] arr = {268,555,198,102,65,48,66,98};

        //使用for循环，对arr数组进行冒泡排序，循环数组的长度-1次
        for(int i=0 ; i<arr.length-1; i++){

            //嵌套循环，使数组能依次进行循环,j要循环arr数组的长度-i-1，因为最后一位是最大值，不需要再比较，也防止比较时发生索引越界。
            for(int j=0 ; j<arr.length-i-1; j++){

                //if判断arr[n]和arr[n+1]之间的大小，如果大的往后排。
                if(arr[j] > arr[j+1]){
                    //初始一个变量，用于存储数组值，方便数组之间的换位。
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }

            }
        }

        System.out.print("[");

        //再创建一个循环，用于遍历数组值
        for(int i=0 ; i<arr.length ;i++){

            //判断：如果i的值为arr的长度-1，说明是数组最后一位值，那么不需要添加小于号
            if(i == arr.length-1){
                System.out.print(arr[i]);
            }else {
                System.out.print(arr[i]+" < ");
            }

        }

        System.out.println("]");

    }

}
